package com.harmony.pilot.common.dto;

import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * LLM调用请求
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LLMRequest implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    /**
     * 提示词
     */
    @NotBlank(message = "提示词不能为空")
    private String prompt;
    
    /**
     * 系统提示
     */
    private String systemPrompt;
    
    /**
     * 模型名称
     */
    private String model;
    
    /**
     * 温度参数（0-1）
     */
    private Double temperature = 0.7;
    
    /**
     * 最大Token数
     */
    private Integer maxTokens = 2000;
    
    /**
     * Top P参数
     */
    private Double topP = 0.95;
    
    /**
     * 停止序列
     */
    private List<String> stopSequences;
    
    /**
     * 附加参数
     */
    private Map<String, Object> additionalParams;
}

